home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 38
/
Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso
/
-seriously_amiga-
/
graphics
/
fv21beta-src
/
fv.hi
< prev
next >
Wrap
Text File
|
1999-01-25
|
4KB
|
166 lines
; /* C SECTION *************
IFNE 0
; */
struct ScreenNode {
struct Node node;
__aligned ULONG data[11]; /* 44 bytes private to the XXX functions */
/* These are for use by the XXXloader routines and should not be read or modified
by any other routines */
UBYTE *loaderbuf;
UBYTE *fileptr;
ULONG loaderbufsize; // Size of the buffer in bytes
BPTR fh;
LONG bytesinloaderbuf;
/* These are fields which give additional information about the picture stored
on disk. They are exclusively set by the InitXXX routines, and are read-only */
ULONG bytesperrow; /* size of one row in bytes fresh from the pic-decoder */
UWORD bytesperpixel;
UWORD width; /* these describe the picture on disk */
UWORD height;
UWORD depth; /* 2^depth is not necessarily the number of colors (HAM) */
UWORD colors; /* not inited if truecolor = TRUE */
UWORD aspectx;
UWORD aspecty;
/* following UBYTE's are TRUE or FALSE */
UBYTE colorinput; /* CI_PALETTE, CI_GRAY, CI_RGB, CI_HAM, CI_EHB */
UBYTE truecolor; /* No palette-info; depth 1-8 = gray depth 15,16,24 = color */
UBYTE ham; /* depth 6 = HAM6 depth 8 = HAM8 */
UBYTE ehb;
UBYTE planar;
UBYTE pad1;
/* now follows space for a 256-color palette (4 bytes/entry) */
UBYTE palette[1024];
/* These are fields which determine how the data from the decodeXXX function
will be treated (conversion, scaling). They are set exclusively by the
bestmodeid function, and are read-only */
/* following UBYTE's are TRUE or FALSE */
UBYTE colorconversion; // 0 (none), CC_FTC, CC_GRAY
UBYTE rerender;
UBYTE gray;
UBYTE deep; /* not set means HAM6/GRAY4, set means HAM8/GRAY8 */
UBYTE halvewidth;
UBYTE direct; /* direct HAM or EHB, if TRUE then rerender must be FALSE */
ULONG modeid; /* direct from the ScreenChoice structure */
struct ScrChoice *scrchoice;
WORD renderaspect;
ULONG displayid;
UWORD nominalw;
UWORD nominalh;
/* following fields are not to be modified by the initXXX or exitXXX routines */
ULONG lock; /* lock on the dir this file is located in */
ULONG buffer;
UWORD renderw;
UWORD renderh;
UWORD renderd;
WORD bestpen; /* color of the best pen for rendering the information text */
UBYTE *buffersmemory;
UBYTE *linebuffer;
UBYTE *rgbbuffer;
UBYTE *bytebuffer;
UBYTE *floydbuf1;
UBYTE *floydbuf2;
UWORD outputline;
/* These are created and released by the openscreen and closescreen functions, and
are read-only to all except those two routines. They are uninitialised (zero)
before openscreen has been called or after closescreen has been called */
struct Screen *screen;
struct Window *window;
struct BitMap *tempbm;
/* Same as above, except that these are private and may not be read or modified by
any routines other than the ones mentioned above */
struct RastPort temprp;
/* A list structure to keep track of buffers with picture data when decoding pictures
which are not yet to be displayed */
struct List displaydata;
/* Scaling stuff */
WORD scalexfactor,scaleyfactor; // shifted 12 to the left for accuracy
WORD scalexcnt,scaleycnt; // shifted 12 to the left for accuracy
/* filenode pointer */
struct FileNode *fn;
};
struct LineHeader {
UWORD row;
UBYTE repeatrow;
UBYTE pad;
}
; /* ASSEMBLY SECTION *************
ENDC
ERROR_END_OF_STREAM EQU 27
STRUCTURE ScreenNode,0
STRUCT sn_Node,LN_SIZE
ALIGNLONG
STRUCT sn_Data,11*4
APTR sn_LoaderBuf
APTR sn_FilePtr
APTR sn_Loaderbufsize
ULONG sn_fh
LONG sn_Bytesinloaderbuf
ULONG sn_BytesPerRow
UWORD sn_BytesPerPixel
UWORD sn_Width
UWORD sn_Height
UWORD sn_Depth
UWORD sn_Colors
UWORD sn_Aspectx
UWORD sn_Aspecty
LABEL sn_SIZEOF
STRUCTURE LineHeader,0
UWORD lh_Row
UBYTE lh_Repeatrow
UBYTE lh_Pad
LABEL lh_SIZEOF
; */